﻿Imports extranet.BE
Imports extranet.DA

Public Class BCCandidato
  Inherits BCUsuario

  Public Shared Function LoginExiste(ByVal login As String) As Boolean
    Dim objBECandidato As New BECandidato()
    objBECandidato.Login = login
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.loginExiste(objBECandidato)
  End Function

  Public Shared Function listarNacionalidadesCandidatos() As List(Of String)
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.listarNacionalidadesCandidatos()
  End Function

  Public Shared Function listarCidadesCandidatos() As List(Of String)
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.listarCidadesCandidatos()
  End Function

  Public Shared Function listarEstadosCandidatos() As List(Of String)
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.listarEstadosCandidatos()
  End Function

  Public Shared Function listarEscolaridadesCandidatos() As List(Of String)
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.listarEscolaridadesCandidatos()
  End Function

  Public Shared Function VincularVaga(ByVal login As String) As Boolean
    Dim objBECandidato As New BECandidato()
    objBECandidato.Login = login
    Dim DACandidato As New DA.DACandidato()
    Return DACandidato.loginExiste(objBECandidato)
  End Function

  Public Shared Function Listar() As List(Of BECandidato)
    Dim objBECandidatos As List(Of BECandidato) = Nothing
    Dim DACandidato As New DA.DACandidato()
    objBECandidatos = DACandidato.listar()
    Return objBECandidatos
  End Function

  Public Shared Function Buscar() As List(Of BECandidato)
    Dim objBECandidatos As List(Of BECandidato) = Nothing
    Dim DACandidato As New DA.DACandidato()
    objBECandidatos = DACandidato.listar()
    Return objBECandidatos
  End Function

  Public Overloads Shared Function SelecionaCandidato(ByVal intId As Integer) As BECandidato
    Dim objBECandidato As New BECandidato()
    If intId > 0 Then
      objBECandidato.Id = intId
      Dim DACandidato As New DA.DACandidato()
      objBECandidato = DACandidato.selecionaCandidato(objBECandidato)
    End If
    Return objBECandidato
  End Function

  Public Overloads Shared Function Selecionar(ByVal strSexo As String, ByVal strPossuiFilhos As String, _
                                              ByVal strPortadorDeficiencia As String, ByVal strIdade As String, _
                                              ByVal strNacionalidade As String, ByVal strCidade As String, _
                                              ByVal strEstado As String, ByVal strGrauEscolaridade As String, _
                                              ByVal strAtribuicoes As String, ByVal intAlemao As Integer, _
                                              ByVal intEspanhol As Integer, ByVal intFrances As Integer, _
                                              ByVal intIngles As Integer, ByVal intItaliano As Integer, _
                                              ByVal sortExpression As String, ByVal sortDirection As String) As List(Of BECandidato)
    Dim objDACandidato As New DA.DACandidato()
    Dim objBECandidato As New BECandidato()
    Dim objEscolaridade As New GrauEscolaridade()
    objDACandidato.objQuery.Sort = New BESort(sortExpression, sortDirection)
    With objBECandidato
      .Sexo = strSexo
      .PossuiFilhos = strPossuiFilhos
      .PortadorDeficiencia = strPortadorDeficiencia
      .Nacionalidade = strNacionalidade
      .Cidade = strCidade
      .Estado = strEstado
      .Curriculo = New Curriculo()
      If strGrauEscolaridade.Length() > 0 Then
        .Curriculo.FormacoesEscolares = New List(Of FormacaoEscolar)
        .Curriculo.FormacoesEscolares.Add(New FormacaoEscolar())
        '.Curriculo.FormacoesEscolares(0).Escolaridade = objEscolaridade.Parse(GetType(GrauEscolaridade), strGrauEscolaridade.Replace(" ", "_"))
      End If
      If strAtribuicoes.Length() > 0 Then
        .Curriculo.ExperienciasProfessionais = New List(Of ExperienciaProfissional)
        .Curriculo.ExperienciasProfessionais.Add(New ExperienciaProfissional())
        .Curriculo.ExperienciasProfessionais(0).AtribuicoesDoCargo = strAtribuicoes
      End If
      .Curriculo.Idiomas = New List(Of Idioma)
      If intAlemao > 0 Then
        Dim objIdioma = New Idioma()
        objIdioma.Id = 1
        objIdioma.Nivel = intAlemao
        .Curriculo.Idiomas.Add(objIdioma)
      End If
      If intEspanhol > 0 Then
        Dim objIdioma = New Idioma()
        objIdioma.Id = 2
        objIdioma.Nivel = intEspanhol
        .Curriculo.Idiomas.Add(objIdioma)
      End If
      If intFrances > 0 Then
        Dim objIdioma = New Idioma()
        objIdioma.Id = 3
        objIdioma.Nivel = intFrances
        .Curriculo.Idiomas.Add(objIdioma)
      End If
      If intIngles > 0 Then
        Dim objIdioma = New Idioma()
        objIdioma.Id = 4
        objIdioma.Nivel = intIngles
        .Curriculo.Idiomas.Add(objIdioma)
      End If
      If intItaliano > 0 Then
        Dim objIdioma = New Idioma()
        objIdioma.Id = 5
        objIdioma.Nivel = intItaliano
        .Curriculo.Idiomas.Add(objIdioma)
      End If
    End With
    Return objDACandidato.selecionaCandidatos(objBECandidato)
  End Function

  Public Overloads Shared Function SelecionarPeloUsuario(ByVal strUsuario As String) As BECandidato
    Dim objDACandidato As New DACandidato(booCondicaoSimilar:=False)
    Dim objBECandidatos As IList(Of BECandidato)
    Dim objBECandidato As New BECandidato
    If strUsuario IsNot Nothing Then
      objBECandidato.Login = strUsuario
      objBECandidatos = objDACandidato.selecionaCandidatos(objBECandidato)
      If objBECandidatos.Count() > 0 Then
        objBECandidato = objBECandidatos(0)
      End If
    End If
    Return objBECandidato
  End Function

  Public Overloads Shared Function SelecionarCandidatosAVaga(ByVal intIdVaga As Integer) As List(Of BECandidato)
    Dim DACandidato As New DA.DACandidato()
    Dim objBECandidato As New BECandidato()
    objBECandidato.VagasAssociadas = New List(Of BEVaga)
    objBECandidato.VagasAssociadas.Add(New BEVaga(intIdVaga))
    Return DACandidato.selecionaCandidatos(objBECandidato)
  End Function

  Public Shared Function ContarRespostasCertas(ByVal objBECandidato As BECandidato) As Integer
    Dim DACandidato As New DACandidato()
    Return DACandidato.ContarRespostasCertas(objBECandidato)
  End Function

  Public Shared Sub Salvar(ByRef objBECandidato As BECandidato)
    Dim DACandidato As New DA.DACandidato()
    If objBECandidato.Id > 0 Then
      DACandidato.atualizar(objBECandidato)
    Else
      DACandidato.inserir(objBECandidato)
    End If
  End Sub

  Public Shared Sub Deletar(ByVal objBECandidato As BECandidato)
    Dim DACandidato As New DA.DACandidato()
    If objBECandidato.Id > 0 Then DACandidato.deletar(objBECandidato)
  End Sub

End Class